#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>

#define N 10 


//exit为库函数 _exit为系统调用
//exit会调用_exit
int main()
{
    printf("you can see me!");
    
    //exit会刷新缓冲区 _exit不会
    //得出结论：缓冲区绝对不在内核中
    //exit(12);
    _exit(12);
    return 0;
}

//进程出现异常 本质是我们的进程收到了对应的信号
//int main()
//{
//    int a=10;
//    //a/=0;
//    sleep(100);
//    return 0;
//}

//return 0 这里的0是退出码 退出码是返回给父进程的
//exit(10)这里的10也是返回码
//echo $? 查看最近一次退出时的退出码
//void func()
//{
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    exit(10);
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//    printf("func\n");
//}
//
//int main()
//{
//    printf("hello linux!\n");
//    func();
//    return 0;
//}

//int main()
//{
//    for(int i=0;i<200;i++)
//    {
//        printf("%s\n",strerror(i));
//    }
//    return 0;
//}

//void runChild()
//{
//    int cnt=10;
//    while(cnt)
//    {
//        printf("I am child: pid:%d ppid:%d\n",getpid(),getppid());
//        sleep(1);
//        cnt--;
//    }
//}
//
//int main()
//{
//    for(int i=0;i<N;i++)
//    {
//        int  id = fork();
//        if(id == 0)
//        {
//            runChild();
//            exit(0);
//        }
//    }
//
//    //printf("before: pid:%d\n",getpid());
//    //fork();
//    //printf("after: pid:%d\n",getpid());
//
//    sleep(1000);
//    
//    return 0;
//}
